/**
 * 显示错误信息
 * 
 * @param message
 *            提示信息
 * @return
 */
function _showErrorMessage(message) {
	dopop({
		id : 'msg',
		title : '错误信息',
		html : message,
		callBack : function(){_getJqueryMsgBoxObject("msgBtn").focus();},
		isMsg : 'error',
		button : "<button type='button' id='msgBtn' class='nBtn-01' onclick=_getJqueryMsgBoxObject('msg').hide()>确定</button>"
	});
}

function _showMsg(message,success){
	var tag = "success";
	var title = "成功啦";
	if(!success){
		tag = "normal";
		title = "温馨提醒";
	}
	dopop({
		id : 'msg',
		title : title,
		html : message,
		callBack : function(){_getJqueryMsgBoxObject("msgBtn").focus();},
		isMsg : tag,
		button : "<button id='msgBtn' type='button' class='nBtn-01' onclick=_getJqueryMsgBoxObject('msg').hide()>确定</button>"
	});
}

// 返回到登陆表单的首页
function _gotoLoginPage() {

}

/**
 * 获取消息提示框的JQuery对象
 * @param msgId
 * @returns
 */
function _getJqueryMsgBoxObject(msgId){
	if($('#'+msgId).length>0){
		return $('#'+msgId);
	} else {
		return $('.tabIframe:visible:eq(0)',top.document).contents().find("#"+msgId);
	}
	
}

/**
 * 显示二次确认窗口
 * 
 * @param options
 *            二次确认窗口选项参数
 * @return
 */
function _showConfirmMessage(options) {
	// 默认选项
	var defaults = {
		id : "confirm", // 二次确认窗口的id，默认值是confirm，可选
		title : "确认", // 二次确认窗口的标题，默认值是"确认"，可选
		text : "", // 二次确认窗口的提示信息，必填
		okCallback : null
	// 二次确认确认按钮的回调函数，必填
	};
	// 合并选项
	var settings = jQuery.extend({}, defaults, options);
	var okBtn = settings.id + 'okBtn';
	dopop({
		id : settings.id,
		title : settings.title,
		html : settings.text,
		callBack : function(){_getJqueryMsgBoxObject(okBtn).focus();},
		isMsg : 'normal',
		button : "<button id='"
				+ okBtn
				+ "' class='nBtn-01' type='button'>确 定</button><button type='button' class='nBtn-02' onclick=_getJqueryMsgBoxObject('"
				+ settings.id + "').hide()>取消</button>"
	});
	// 绑定click事件
	_getJqueryMsgBoxObject(okBtn).unbind('click').bind('click', function() {
		_getJqueryMsgBoxObject(settings.id).hide();
		settings.okCallback();
	});
}

/**
 * 显示编辑窗口
 * 
 * @param options
 *            编辑窗口选项
 * @return
 */
function _showEditForm(options) {

	// 默认选项
	var defaults = {
		id : "doEditDiv", // 打开的新增页面的ID，默认为doEditDiv
		url : "", // 提交的URL，必填
		data : {}, // 提交的参数值
		isView : false, // 是否查看页面，默认为否，查看页面为不可编辑，并没有保存按钮
		callBack : null, // 在页面渲染完成后，执行的函数
		showLoading : true, //是否打开loading，默认关闭
		closeLoading : true //是否关闭loading，默认关闭
	};

	// 合并选项
	options = jQuery.extend({}, defaults, options);
	if (options.isView) {
		if(options.data!=null){
			options.data.viewMode = "true";
		}else{
			options.data = {viewMode:"true"};
		}
	}

	//jQuery("#" + options.id).html("");

	var ajaxOptions = {
		url : options.url,
		data : options.data,
		showLoading : options.showLoading,
		closeLoading : options.closeLoading,
		callBack : function(response) {
			
			doEdit(response, options.id, options.callBack);
		}
	};
	_ajax(ajaxOptions);
}

/**
 * 打开新窗口
 * 
 * @param options
 *            新窗口选项
 * @return
 */
function _showNewPage(options) {
	// 默认选项
	var defaults = {
		id : "doNewDiv", // 打开的新增页面的ID，默认为doEditDiv
		url : "", // 提交的URL，必填
		data : {}, // 提交的参数值
		afterRomance : null // 在页面渲染完成后，执行的函数
	};

	// 合并选项
	options = jQuery.extend({}, defaults, options);
	var ajaxOptions = {
		url : options.url,
		data : options.data,
		callBack : function(response) {
			doEdit(response, options.id, options.afterRomance);
		}
	};
	_ajax(ajaxOptions);
}

/**
 * 全选
 * 
 * @param chkname
 *            列表中checkbox的名称
 * @param checked
 *            当前状态是选中还是非选中
 * @return
 */
function _checklist(chkname, checked) {
	jQuery("input[name='" + chkname + "']").each(function() {
		this.checked = checked;
	});
}

/**
 * 全选
 * 
 * @param chkname
 *            列表中checkbox的名称
 * @param checked
 *            当前状态是选中还是非选中
 * @return
 */
function _checkListByProperty(property, chkname, checked) {
	jQuery("input["+property+"='" + chkname + "']").each(function() {
		this.checked = checked;
	});
}

/**
 * 获取列表中选中的选项的值
 * 
 * @param chkname
 *            列表中checkbox的名称
 * @param property 属性名，若为空，默认为选项
 * @return 选中选项的值集合，字符串，以逗号隔开
 */
function _getChecklist(chkname,property) {
	var sidArr = new Array();
	jQuery("input[name='" + chkname + "']:checked").each(function() {
		if(property!=null&&property!=""){
			sidArr.push(jQuery(this).attr(property));
		}else{
			sidArr.push(this.value);
		}
	});
	var sids = sidArr.toString();
	return sids;
}

/**
 * 获取选中checkbox对象的父Tr中的pid
 * 
 * @param chkname
 *            列表中checkbox的名称
 * @return 父tr中的pid属性值，多个以逗号隔开
 */
function _getCheckParentSid(chkname) {
	var pids = null;
	try{
		jQuery("input[name='" + chkname + "']:checked").each(function() {
			var pid = jQuery(this).parents("tr:first").attr("pid");
			if(pids==null) pids = pid;
			else if((","+pids+",").indexOf(","+pid+",")<0){
				pids+=","+pid;
			}
		});
	}catch(e){}
	return pids;
}

/**
 * 默认的错误提示信息
 */
function _defaultOnError() {
	dopop({
		id : 'error_msg_box',
		title : '信息',
		html : "系统异常，请稍后再试！",
		callBack : function(){_getJqueryMsgBoxObject("error_msg_box_btn").focus();},
		isMsg : 'normal',
		button : "<button id='error_msg_box_btn' class='nBtn-01' type='button' onclick=_getJqueryMsgBoxObject('error_msg_box').hide()>确 定</button>"
	});
}

function handleEwedEditor(){
   var sufix='_eWebEditor';
   $("iframe[id$="+sufix+"]").each(function(){
	     var editorId=$(this).attr('id');
	     var textId=editorId.substring(0,editorId.length-sufix.length);
	     try{
	     	$("#"+textId).val(eval(editorId+".getHTML()"));
	     }catch(e) {
	    	//var str='请用IE浏览器使用该在线编辑器，编辑器中的内容未保存成功！';
	    	//$(this).append("<br/><span class='red'>"+str+"</span>");
	     }
   });
}



/**
 * 表单提交
 * 
 * @param options
 *            表单提交的选项
 * @return
 */
function _ajaxSubmit(options) {
	handleEwedEditor();
	// 默认选项
	var defaults = {
		formId : "", // 表单的ID，必填
		url : "", // 设置提交的地址，可填可不填，若不填时，则要求Form表单必须要有url值
		callBack : null, // 成功的回调函数，必填
		method : 'POST', //提交表单的形式
		async:true,//同步还是异步，默认异步
		data : {}, // 需要传递的参数，可选
		beforSend : null, // 提交之前执行的函数
		error : _defaultOnError,
		sucessClue : null
	// 操作成功的提示信息！
	// 发现错误执行的函数，可选
	};
	options = jQuery.extend({}, defaults, options);
	if (options.url != null && options.url != "") {
		options.url = addRandomToUrl(mvc_ctx + options.url);
	}
	options.obj = jQuery("#" + options.formId);
	var callBackFunc = options.callBack;
	options.callBack = function(response) {
		_defaultOnComplete(response, callBackFunc, options.sucessClue);
	};
	sendForm(options);
}




/**
 * ajax远程调用
 * 
 * @param ajaxOptions
 *            远程调用选项
 * @return
 */
function _ajax(ajaxOptions) {
	// 默认选项
	var defaults = {
		url : "", // action的地址，必填
		data : {}, // 需要传递的参数，可选
		dataType : "html", // ajax请求返回类型，默认是html，可选
		method : 'POST', //提交表单的形式
		callBack : null, // 成功返回后的回调函数，可选
		isLock : true, // 是否启用锁屏
		sucessClue : null, // 操作成功的提示信息
		showLoading : false, //是否打开loading，默认关闭
		closeLoading : false, //是否关闭loading，默认关闭
		async : true //在默认的情况下，所有请求都是以异步的方式发送的（值为true）。如果要使用同步方式，需要将此项设置为false
	};

	
	var options = jQuery.extend({}, defaults, ajaxOptions);

	
	jQuery.ajax({
				url : addRandomToUrl(mvc_ctx + options.url),
				type : options.method,
				data : options.data,
				dataType : options.dataType,
				async : options.async,
				beforeSend:function(){
					if(options.showLoading)loadingfunc();
				},
				success : function(response) {
					if(options.closeLoading)loadingfunc({isHide:true});
					_defaultOnComplete(response, options.callBack,
							ajaxOptions.sucessClue);
				},
				error : function(xhr, textStatus, errorThrown) {
					loadingfunc({isHide:true});
					dopop({
						id : 'error_msg_box',
						title : '信息',
						html : "系统异常，请稍后再试！status: "+textStatus,
						callBack : function(){_getJqueryMsgBoxObject("error_msg_box_btn").focus();},
						isMsg : 'normal',
						button : "<button id='error_msg_box_btn' class='nBtn-01' type='button' onclick=_getJqueryMsgBoxObject('error_msg_box').hide()>确 定</button>"
					});
				}
			});
}

function _formSubmit(options) {
	// 默认选项
	var defaults = {
		formId : "", // 表单的ID，必填
		url : "", // 设置提交的地址，可填可不填，若不填时，则要求Form表单必须要有url值
		method : "POST", // 设置提交的方式，默认为POST
		data : {}, // 需要传递的参数，可选
		error : _defaultOnError,
		sucessClue : "操作成功！", // 操作成功的提示信息！
		loadingText : null
	// 发现错误执行的函数，可选
	};
	options = jQuery.extend({}, defaults, options);
	var url = "";
	if (options.url != null && options.url != "") {
		//url = addRandomToUrl("http://localhost:8080/" + options.url);
		url = options.url;
	}
	var form = jQuery("#" + options.formId);
	form.attr("action", url);
	form.attr("method", options.method);
	var data = options.data;
	for ( var x in data) {
		if (data[x] != null) {
			var input = "<input type='hidden' name='" + x + "' value='"
					+ data[x] + "'/>";
			form.append(input);
		}
	}
	if (!_isNull(options.loadingText)) {
		loadingfunc({
			html : options.loadingText
		});
	} else {
		loadingfunc();
	}
	form.submit();
}
/**
 * 服务端返回后默认处理函数
 * 
 * @param response
 *            服务端返回对象
 * @param callBack
 *            回调函数
 * @param sucessClue
 *            操作成功的提示信息
 * @return
 */
function _defaultOnComplete(response, callBack, sucessClue) {
	if (_isJson(response)) {
		if (typeof (response) == "string")
			response = eval('(' + response + ')');
		if (response.result == false || response.result == "false") {
			_defaultOnFail(response);
			return;
		}
	}
	// 需要提示操作成功的信息
	if (sucessClue != null && sucessClue != "") {
		dopop({
			id : 'msg',
			title : '恭喜您，成功啦！',
			html : sucessClue,
			callBack : function(){_getJqueryMsgBoxObject("msg_ok_btn").focus();},
			isMsg : 'success',
			button : "<button type='button' id='msg_ok_btn' class='nBtn-01'>确定</button>"
		});
		
		_getJqueryMsgBoxObject("msg_ok_btn").unbind('click').bind("click", function() {
			_getJqueryMsgBoxObject('msg').hide();
			if (callBack != null) {
				callBack(response);
			}
		});
	} else {
		if (callBack != null) {
			callBack(response);
		}
	}
}

/**
 * 服务端返回失败后处理函数
 * 
 * @param response
 *            服务端返回对象
 * @return
 */
function _defaultOnFail(response) {
	// 表单信息验证
	if (response.type == "fieldError" && response.errors != null
			&& response.errors.length > 0) {
		for ( var index in response.errors) {
			var fieldError = response.errors[index];
			if (fieldError != null && !_isNull(fieldError.field)) {
				var jErrorField = _getJQueryById(fieldError.field);
				var errorMsg = fieldError.errorMsg||"未知错误类型，请联系管理员！";
				if(jErrorField.length > 0){
					SVerifyErr({
						obj : jErrorField,
						tipsText : errorMsg
					});
				}else{
					_showErrorMessage("field:\"" + fieldError.field + "\" " + errorMsg);
				}
			} else {
				_showErrorMessage("字段配置错误，请联系管理员！");
				break;
			}
		}
	} else if (response.needLogin == true || response.needLogin == "true") {
		var msg = "系统超时或未登陆，请重新登陆！";
		if (response.message != null && response.message.length > 0) {
			msg = response.message;
		}
		dopop({
			id : 'error_msg_box',
			title : '错误信息',
			html : msg,
			isMsg : 'error',
			cover : top,
			callBack : function(){_getJqueryMsgBoxObject("error_msg_box_btn").focus();},
			button : "<button id='error_msg_box_btn' class='nBtn-01' type='button' onclick='_defaultOnFailHandler(\""
					+ response.resultCode + "\",true);'>确 定</button>",
			closeCallBack : function() {
				_defaultOnFailHandler(response.resultCode, true);
			}
		});
	} else {
		var msg = "系统繁忙，请稍后再试！";
		if (response.message != null && response.message.length > 0) {
			msg = response.message;
		}
		var isTrace=false;
		var stackTraceMsg=null;
		if(response.isPrintStackTrace!=null&&response.isPrintStackTrace==true){
			if (response.stackTrace != null && response.stackTrace.length > 0) {
				stackTraceMsg=response.stackTrace;
				isTrace=true;
			}
		}
		if(isTrace&&stackTraceMsg!= null && stackTraceMsg.length > 0){
			dopop({
				id : 'error_msg_box_2',
				title : '错误信息',
				tips: msg,
				html : stackTraceMsg,
				isMsg : 'error',
				width : "max",
				height : 400,
				callBack : function(){_getJqueryMsgBoxObject("error_msg_box_2_btn").focus();},
				button : "<button id='error_msg_box_2_btn' class='nBtn-01' type='button' onclick='_defaultOnFailHandler(\""
						+ response.resultCode + "\",false,\"error_msg_box_2\");'>确 定</button>",
				closeCallBack : function() {
					_defaultOnFailHandler(response.resultCode, response.needLogin,"error_msg_box_2");
				}
			});
		}else{
			dopop({
				id : 'error_msg_box',
				title : '错误信息',
				html : msg,
				isMsg : 'error',
				callBack : function(){_getJqueryMsgBoxObject("error_msg_box_btn").focus();},
				button : "<button id='error_msg_box_btn' class='nBtn-01' type='button' onclick='_defaultOnFailHandler(\""
						+ response.resultCode + "\");'>确 定</button>",
				closeCallBack : function() {
					_defaultOnFailHandler(response.resultCode, response.needLogin);
				}
			});
		}
		
		
	}
}

/**
 * 失败信息框返回后回调函数
 * 
 * @param errorCode
 *            错误代码
 * @param needLogin
 *            需要登陆
 * @return
 */
function _defaultOnFailHandler(resultCode, needLogin, msgId) {
	if(msgId==null){
		_getJqueryMsgBoxObject("error_msg_box").hide();
	}else{
		_getJqueryMsgBoxObject(msgId).hide();
	}
	if (needLogin == true || needLogin == "true") { // 未登录处理
		window.top.location.href = mvc_ctx + "/sys/login";
	}
}

/**
 * 判断一个对象是否json对象
 * 
 * @param json
 *            要判断的对象
 * @return TRUE：是json对象；FALSE：不是json对象
 */
function _isJson(json) {
	try {
		if (typeof (json) == "object") {
			return Object.prototype.toString.call(json).toLowerCase() == "[object object]"
					&& !json.length;
		} else if (typeof (json) == "string") {
			var obj = eval("("+json+")");
			
			return (obj != null);
		} else {
			return false;
		}
	} catch (e) {
		return false;
	}
	return true;
}

/**
 * 设置dom的innerHTML
 * 
 * @param target
 *            dom的ID
 * @param html
 *            设置的html内容
 * @return
 */
function _setHtml(target, html) {
	if (target.indexOf('.') != -1) {
		target = target.replace(/\./g, "\\.");
	}
	jQuery("#" + target).html(html);
}

/**
 * 获取元素的值
 * 
 * @param id
 *            元素标识
 * @return 元素的值
 */
function _getElementValue(id) {
	if (id.indexOf('.') != -1) {
		id = id.replace(/\./g, "\\.");
	}
	return jQuery("#" + id).val();
}

/**
 * 设置元素的值
 * 
 * @param id
 *            元素的ID
 * @param value
 *            要设置的值
 * @return
 */
function _setElementValue(id, value) {
	if (id.indexOf('.') != -1) {
		id = id.replace(/\./g, "\\.");
	}
	jQuery("#" + id).val(value);
}

/**
 * 设置元素的属性值
 * 
 * @param id
 *            元素的ID
 * @param attr
 *            元素的属性名称
 * @param value
 *            要设置的值
 * @return
 */
function _setElementAttr(id, attr, value) {
	if (id.indexOf('.') != -1) {
		id = id.replace(/\./g, "\\.");
	}
	jQuery("#" + id).attr(attr, value);
}

/**
 * 移动选中
 * @param 源Select对象
 * @param 目标Select对象
 */
function _moveItem(source,target){
	if(source!=null&&target!=null&&source.tagName=="SELECT"&&target.tagName=="SELECT"){
		if(source.selectedIndex==-1){
			_showErrorMessage("源选区中没有选中的值，请先选择后移动！");
			return;
		}
		var targetCount = target.length;
		for(var i=0;i<source.length;i++){
			if(source[i].selected){
				var isFound = false;
				for(var j=0;j<targetCount;j++){
					target[j].selected=false;
					if(target[j].value==source[i].value){
						source[i].selected=false;
						isFound = true;
					}
				}
				if(!isFound) target.appendChild(source.options[i--]);
			}
		}
		target.focus();
	}else{
		_showErrorMessage("不正确的对象，无法移动！");
	}
}

function _moveAllItem(source,target) {
	if(source!=null&&target!=null&&source.tagName=="SELECT"&&target.tagName=="SELECT"){
		for(var i = 0; i < source.length; i++){
			source[i].selected = true;
		}
		_moveItem(source,target);
	} else{
		_showErrorMessage("不正确的对象，无法移动！");
	}
}

/**
 * @param id
 *            窗口的ID
 */
function _hidden(id) {
	jQuery("#" + id).hide();
}

/**
 * @param id
 */
function _show(id) {
	jQuery("#" + id).show();
}

/**
 * 判断是否是空值，空中，或者小于0
 * return (obj == null || obj == undefined || $.trim(obj) == "" || obj <= 0);
 * @param obj
 *            需要判断的值
 * @return true or false
 */
function _isNull(obj) {
	return (obj == null || obj == undefined || $.trim(obj) == "" || obj <= 0);
}

/**
 * return (obj == null || obj == undefined)
 * @param obj 需要判断的值
 * @returns {Boolean}
 */
function _isUndefined(obj) {
	return (obj == null || obj == undefined);
}

/**
 * 在页面装载完之前执行的函数
 * 
 * @param func
 *            函数
 */
function _beforeOnload(func) {
	jQuery(document).ready(func);
}

/**
 * 往URL地址中增加一个随机数，修正提交的URL，以保证每次提交的URL地址都不一样
 * 
 * @param url
 *            url地址
 */
function addRandomToUrl(url) {
	return addParamToUrl(url, "rnd_num_=" + Math.random());
}

/**
 * 
 * @param url
 *            url地址
 * @param param
 *            参数
 */
function addParamToUrl(url, param) {
	if (param != null && param != "") {
		if (url.indexOf("?") != -1) {
			url += "&" + param;
		} else {
			url += "?" + param;
		}
	}
	return url;
}

/**
 * 分页页面用到的查询方法
 * 
 * @param queryFunc
 *            提交查询的js方法名称
 * @param pageNoId
 *            分页编码的ID
 * @param pageNo
 *            页码
 * @param pageCount
 *            总页数
 */
function pageQuery(queryFunc, pageNoId, pageNo,pageCount) {
	if(isNaN(pageNo)){//假如输入不对
		alert('请输入正确范围内的数字！');
		return;
	}
	pageNo=Math.round(pageNo);
	if(pageNo>pageCount){
		pageNo=pageCount;
	}
	if(pageNo<=0){
		pageNo=1;
	}
	if (pageNo != null && pageNo != "") {
		_setElementValue(pageNoId, pageNo);
	}
	if (queryFunc != null) {
		eval(queryFunc);
	}
}

/**
 * 还原PageNo的对象值，加在搜索按钮的前面
 * 
 * @param searchBtn
 */
function clearPageNo(searchBtn) {
	var form = jQuery(searchBtn).parents("form");
	if (form.length > 0) {
		var page = form.find("input[name='pageNo']");
		if (page.length > 0) {
			page.attr("value", 1);
		}
	}
}




function startFlowAudit(flowCode, version, titleIndex) {
	var chkname = 'sids';
	var bizIds = _getChecklist(chkname);
	if (bizIds.length == 0) {
		_showErrorMessage("请先选择要审批的项！");
		return false;
	}
	var titleArr = new Array();
	jQuery("input[name*='" + chkname + "']:checked").each(
			function() {
				var title="";
				var tay=titleIndex.split(",");
				var len=tay.length;
				for(var i=0;i<len;i++){
					var tayIndex=tay[i];
					if(jQuery.trim(tayIndex)=='') continue;
					var tStr=$(this).parent().parent().find("td:eq(" + tayIndex + ")").text();
					if(i==0){
						title+= tStr;
					}else{
						title+= "-"+tStr;
					}
				}
				titleArr.push(title);
			});
	var titles = titleArr.join("|");
	//检查是否有提交审批之前的函数要执行
	var flowProcessStart=function (data){
		var args = {
				url : "/workflow/flowProcess.start",
				data : {
					"flowCode" : data.flowCode,
					"version" : data.version,
					"bizIds" : data.sids,
					"titles" : data.titles
				},
				showLoading : true,
				closeLoading : true 
			};
			_showEditForm(args);
	};
	var options={"data":{"sids":bizIds,"titles":titles,"flowCode":flowCode,"version":version},"callback":flowProcessStart};
	var typeFunc = typeof(checkForSubmitWorkFlow);
	if(typeFunc!="undefined"&&typeFunc=="function"){
		checkForSubmitWorkFlow(options);
		return;
	}
	flowProcessStart(options.data);
	// window.top.addItem({title:'业务流程',src:mvc_ctx+"/workflow/flowProcess.start?flowCode="+flowCode+"&version="+version+"&bizIds="+bizIds});
	/**
	 * var w = 800; var h = 400; var flows_url
	 * =mvc_ctx+"/workflow/flowProcess.start?flowCode="+flowCode+"&version="+version;
	 * var assessors = showModalDialog(flows_url, this, 'dialogWidth: ' + w +
	 * 'px; dialogHeight: ' + h + 'px; center: yes; resizable: yes; scroll: yes;
	 * status: yes;',''); alert(assessors); if (assessors != undefined &&
	 * assessors != ""){ _showConfirmMessage({ text: "确认要审批吗？", okCallback :
	 * function() { var args = { formId: "myform", url:
	 * "/workflow/flowProcess.run?flowProcess.flowCode="+flowCode+"&=flowProcess.flowVersion="+version,
	 * data: {"bizIds":bizIds,"assessors":assessors}, sucessClue:"提交成功！" };
	 * _ajaxSubmit(args); } }); }
	 */
}


function viewFlowAuditHistory(){
	if(jQuery.trim(is_work_flow)!=''){
		var flow=is_work_flow.split("|");
		if(flow.length<3) return;
		var flowCode=jQuery.trim(flow[0]);
		var flowVersion=jQuery.trim(flow[1]);
	}
   //逻辑略
}

/**
 * Tab页面的切换
 * @param li
 * @param tabColumnBoxId
 * @returns
 */
function showTab(li,tabColumnBoxId){
	$(li).addClass("on").siblings().removeClass("on");
	$("#"+tabColumnBoxId+" > .tabColumn").hide().eq($(li).index()).show();
	//$("#"+tabColumnBoxId+" > .tabColumn").hide().eq($(li).index()).show();	
	
	if($(li).index()!=0)
	{
		var iframe =  $("#"+tabColumnBoxId+" iframe").eq($(li).index());
		var src = iframe.attr('src');
		var src2 = iframe.attr('src2');
		//alert(src+':'+src2)
		if(src!=src2)
		{
			loadingfunc({closeBtnShow:false});	
			iframe.attr('src',src2).load(function(){			
			$.fn.nanagePopu.hide('loading');
			});		
		}	
	}
	
}

/**
 * 关闭doEdit方法打开的内容
 * @param btn
 */
function commonCloseEditDiv(btn){
	var _editDiv = $(btn).parents('.editDiv:first');
	var _closeEdit = _editDiv.find('.closeEdit');
	if(_closeEdit.length>0)
	{
		_closeEdit.trigger("click");//调用UI绑定的方法
	}
	else
	{
		_editDiv.hide();
		_editDiv.html('');//清空内容 是否需要？
	}
	
}

/**
 * 扩展jQuery的函数
 */
$.fn.extend({
	addDetailList: function(tabName,url) {
	    $(this).each(function() {
	    	var id = this.id;
	    	if(_isNull(id))id = this.name;
	    	var tabColumnMenu = "tabColumnMenu_"+id;
	    	var tabColumnBox = "tabColumnBox_"+id;
	    	url = addRandomToUrl(url);
	    	if($('#'+tabColumnMenu).length==0){
	    		var str = "<div class='tabMenu-03 column'><ul id='"+tabColumnMenu+"'><li onclick='showTab(this,\""+tabColumnBox+"\");' class='on'>"+tabName+"</li></ul></div><div id='"+tabColumnBox+"'><div class='tabColumn'><iframe class='iframe iframeDetail' src='"+url+"' style='height:30px' scrolling='no' frameBorder='0'></iframe></div></div>";
	    		$(this).append(str);
				mulReinitIframe('.iframeDetail');
	    	}else{
	    		$('#'+tabColumnMenu).append("<li onclick='showTab(this,\""+tabColumnBox+"\");'>"+tabName+"</li>");
	    		//$('#'+tabColumnBox).append("<div class='tabColumn hide'><iframe class='iframe' src='"+url+"' frameBorder='0' style='height:30px'></iframe></div>");
				
				$('#'+tabColumnBox).append("<div class='tabColumn hide'><iframe class='iframe iframeDetail' frameBorder='0' src2='"+url+"' src='' style='height:30px'  scrolling='no' ></iframe></div>");
				
	    	}
			
	    });
	},
	createEditForm:function(options){
		/*
		功能：创建搜编辑模块入口，主要调用createForm()完成输出 本方法暂时仅做转发功能
		参数：
		详细见：
		createForm()
	   */
		var _this = $(this);
		var btn = null;
		//设置action
		if(options.action==null){
			if(options.isNew){
				options.action = options.createAction;
			}else{
				options.action = options.updateAction;
			}
		}
		//设置title
		if(options.title==null){
			if(options.isView){
				options.title = "显示"+options.moduleName;
			}else if(options.isNew){
				options.title = "添加"+options.moduleName;
			}else{
				options.title = "编辑"+options.moduleName;
			}
		}
		//添加按钮
		if(options.btn==null){
			var id = _this.attr("id");
			if(id==null)id=_this.attr("name");
			if(!options.isView){
				var saveBtnName = id+"_saveBtn";
				var saveAndNewBtnName = id+"_saveAndNewBtn";
				btn = [{type:'button',value:'保存',id:saveBtnName}];
				if(options.isNew&&options.details==null){
					btn[btn.length]={type:'button',value:'保存并添加',id:saveAndNewBtnName};
				}
				btn[btn.length]={type:'reset',value:'重置'};
				if(options.releaseFunction!=null&&!options.isNew){
					btn[btn.length]={type:'button',value:'发布', onclick:options.releaseFunction};
				}
				btn[btn.length]={type:'button',value:'返回',nodisabled:1,onclick:'commonCloseEditDiv(this)'};
				var callBackFunc = options.callBack;
				options.callBack = function(){
					if(callBackFunc!=null){
						if(typeof(callBackFunc)=="string")eval(callBackFunc);
						else callBackFunc();
					}
					var jQuerySaveBtn = $("#"+saveBtnName);
					var jQuerySaveNewBtn = $("#"+saveAndNewBtnName);
					var jQueryForm = jQuerySaveBtn.parents("form");
					var verifySuc = options.verifySuc;
					var verifyNewSuc = options.verifySuc;
					var error = options.sendErr||_defaultOnFail;
					var url=options.url||options.action;
					var ajaxSend = options.ajaxSend || true;
					if(ajaxSend){//如果为ajax提交
						 verifySuc=function(){
							 var callBackFunc = function(response) {
									if ( options.sendCallBack != null)
										options.sendCallBack(response);
									if(options.closeAfterSave!=true&&(options.details!=null&&options.details.length>0)){
										_this.parents('.editDiv:first').html(response);
									}else {
										commonCloseEditDiv(_this);
									}
								};
							sendForm({
								obj:jQueryForm,
								data:options.data,
								callBack:function(response){
									_defaultOnComplete(
											response,
											callBackFunc,
											options.sucessClue);
								},
								beforeSend:options.beforeSend,
								error:error,
								timeout:options.timeout
							});
						 };
						 verifyNewSuc=function(){
							 var callBackNewFunc = function(response) {
									if ( options.sendCallBack != null)
										options.sendCallBack(response);
									jQueryForm.trigger("reset");
								};
							sendForm({
								obj:jQueryForm,
								data:options.data,
								callBack:function(response){
									_defaultOnComplete(
											response,
											callBackNewFunc,
											options.sucessClue);
								},
								beforeSend:options.beforeSend,
								error:error,
								timeout:options.timeout
							});
						 };
					 }else{
						 verifySuc = function(){
							 jQueryForm.submit();
						 };
						 verifyNewSuc=function(){
							 jQueryForm.submit();
						 };
					 }
					if(jQuerySaveBtn.length>0){
						jQuerySaveBtn.verifyForm({callBack:verifySuc});
					}
					if(jQuerySaveNewBtn.length>0){
						jQuerySaveNewBtn.verifyForm({callBack:verifyNewSuc});
					}
					jQueryForm.bind("reset", function(){
						if(typeof(resetKindEditor)=="function")resetKindEditor();
						jQueryForm.find(".dropdownlist").each(function() {
							var hiddenId = this.id.substring(0,this.id.length-4);
							setTimeout(function(){_getJQueryById(hiddenId).trigger("initData");},200);
						});
					});
				};
			}else{
				if(options.releaseFunction!=null){
					btn=[{type:'button',value:'预览', nodisabled:1, onclick:options.releaseFunction}];
				}
				if(btn==null){
					btn = [{type:'button',value:'返回', nodisabled:1, onclick:'commonCloseEditDiv(this)'}];
				}else{
					btn[btn.length] = {type:'button',value:'返回', nodisabled:1, onclick:'commonCloseEditDiv(this)'};
				}
			}
			options.btn = btn;
			var callBackFunc2 = options.callBack;
			options.callBack = function(){
				if(callBackFunc2!=null){
					if(typeof(callBackFunc2)=="string"){
						eval(callBackFunc2);
					}else{
						callBackFunc2();
					}
				}
				/*
				if(!options.isNew&&options.details!=null&&options.details.length>0){
					
					for(var i=0;i<options.details.length;i++){
						var detail = options.details[i];
						_this.addDetailList(detail.tabName,detail.url);
					}
					
					//mulReinitIframe('.iframeDetail');
				}
				*/
			};
		}
		_this.uiCreateEditForm(options);

	}
});

/**
 * 重置表单对象
 * @param obj 表单，可以是表单ID，也可以是表单对象，也可以是button对象
 * 			若为button对象，要求button在表单内部
 */
function _resetForm(obj){
	var jQueryForm;
	if(typeof(obj)=="string"){
		jQueryForm=_getJQueryById(obj);
	}else{
		if(obj.tagName!="FORM"){
			jQueryForm=$(obj).parents("form");
		}else{
			jQueryForm=$(obj);
		}
	}
	if(jQueryForm.length==0){alert("找不到正确的表单，无法重置!");}
	jQueryForm[0].reset();
	if(typeof(resetKindEditor)=="function")resetKindEditor();
	jQueryForm.find("[initValue]").each(function() {
		$(this).trigger("initData");
	});
}

/**
 * 
 * @param isHide 为true怎么都会隐藏,为false怎和都会显示
 */
function shiftHideLeftBtn(isHide){
	if(isHide){
		$('div.sBtn', top.document).trigger('click');
	}else{
		$('div.sBtn-R', top.document).trigger('click');
	}
}

/***
 * 获取<@webEditor编辑器对象
 * @param id 编辑器标签ID
 * @returns 如果编辑器实例存在返回编辑器对象，不存在返回null
 */
function getEditorObject(id){
	if(_isUndefined(KindEditor.instances)){
		return null;
	}
	return KindEditor.instances[id];
}
